package com.yuwei.smartpark

import android.app.Application
import android.content.Context
import android.content.res.Configuration
import android.os.StrictMode
import com.alibaba.android.arouter.launcher.ARouter
import com.yuwei.base.BaseApp
import dagger.hilt.android.HiltAndroidApp

/**
 * APP入口
 *
 */
@HiltAndroidApp
class ParkApp : BaseApp() {

    /**
     * App创建的时候调用
     */
    override fun onCreate() {
        super.onCreate()

    }
    /**
     * App低内存时候调用
     */
    override fun onLowMemory() {
        super.onLowMemory()
        //进行回收相关操作 清理Glide内存缓存 释放大的集合 调用System.gc()
    }
    /**
     * App配置改变的时候调用 如果横竖屏切换了 会调用两次 语言切换 主题切换
     */
    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
    }

    /**
     * App终止的时候调用
     */
    override fun onTerminate() {
        //保存一些状态 不能做耗时操作
        super.onTerminate()
    }

    /**
     * App内存不足的时候调用
     */
    override fun onTrimMemory(level: Int) {
        super.onTrimMemory(level)

    }

    private fun initStrictModel(){
        if(BuildConfig.DEBUG){
            //检查线程运行
            StrictMode.setThreadPolicy(StrictMode.ThreadPolicy.Builder()
                .detectAll()
                .detectNetwork()
                .detectDiskReads()
                .detectDiskWrites()
                .build())
            StrictMode.setVmPolicy(StrictMode.VmPolicy.Builder()
                .detectFileUriExposure()
                .detectActivityLeaks()
                .detectLeakedClosableObjects()
                .build())
        }
    }

}